// pages/citylist/citylist.js
let map = require('../../libs/map')
Page({

  /** 页面的初始数据 */
  data: {
    map:map,      // 所有的城市数据
    letter: 'A',  // 当前选中的导航字母
    cityname: '未选择', // 绑定当前定位城市
    locSuccess: false,  // 表示定位是否成功
  },
  
  tapLocCity(){ /** 当点击定位城市后执行 */
    // 判断定位是否成功
    if(this.data.locSuccess){  // 定位成功
      getApp().globalData.cityname = this.data.cityname
      wx.navigateBack()
    }else { // 定位失败 弹窗提示重新授权
      console.log('定位失败时应弹出窗口')
      this.showAuthDialog()
    }
  },

  /** 显示定位授权窗口 */
  showAuthDialog(){
    wx.showModal({
      title: '提示',
      content: '需要重新授予定位权限，是否前往？',
      success: (res)=>{
        if(res.confirm){ // 用户点击了确认
          // 跳转到权限设置页面
          wx.openSetting({
            success: (settingRes)=>{
              console.log('设置结果', settingRes)
              // 如果用户重新授予了权限，则自动重新定位
              if(settingRes.authSetting["scope.userLocation"]){
                this.loadMyLocation()
              }
            }
          })
        }
      }
    })
  },

  tapCity(e){
    console.log('点了城市。。。')
    let city = e.target.dataset.c
    console.log('城市名称:'+city)

    // 存入globalData
    getApp().globalData.cityname = city
    console.log('存入了globalData, 返回上一页')
    wx.navigateBack()
  },

  /** 点击右侧导航字母后执行 */
  tapLetter(e){
    let letter = e.target.dataset.l
    this.setData({ letter })
  },

  // 加载我的当前位置
	loadMyLocation(){
		// 加载访问腾讯位置服务的核心类 class
		let QQMapWX = require('../../libs/qqmap-wx-jssdk')
		let qqmapsdk = new QQMapWX({ 
			key: 'A7CBZ-FZ73U-PUPV7-BINEG-ICD57-KAB6J' 
		})
		qqmapsdk.reverseGeocoder({ 
			success: (res)=>{
				let city = res.result.address_component.city
				console.log('当前地址：', city)
				this.setData({
          cityname: city,
          locSuccess : true
        })
			},
			fail: (err)=>{
				console.warn('当前地址加载失败', err)
        this.setData({
          cityname: '未授权，点击重试',
          locSuccess: false
        })
      }
		}) 
	},

  /** 生命周期函数--监听页面加载 */
  onLoad(options) {
    console.log(map)
    this.loadMyLocation()
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})